<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta http-equiv="cache-control" content="no-cache">
<title>Genivia - curlapi.c File Reference</title>
<link href="genivia_tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="genivia_content.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top">
 <div id="titlearea">
  <table height="72px" width="100%" cellspacing="0" cellpadding="0">
   <tbody>
    <tr>
     <td width="10%">&nbsp;</td>
     <td width="175px"><a href="https://www.genivia.com"><img alt="Genivia" src="GeniviaLogo2_trans_noslogan.png"/></a></td>
     <td class="tab_home"><a href="https://www.genivia.com">Home</a></td>
     <td class="tab_home"><a href="https://www.genivia.com/docs.html">Documentation</a></td>
     <td>
      <div style="float: right; font-size: 18px; font-weight: bold;">curlapi.c File Reference</div>
      <br>
      <div style="float: right; font-size: 10px;">updated Tue Jan 15 2019 by Robert van Engelen</div>
     </td>
     <td width="10%">&nbsp;</td>
    </tr>
   </tbody>
  </table>
 </div>
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_b4c3aec6cd8f28418150dce663061cfa.html">plugin</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">curlapi.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="curlapi_8h.html">curlapi.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for curlapi.c:</div>
<div class="dyncontent">
<div class="center"><img src="curlapi_8c__incl.png" border="0" usemap="#curlapi_8c" alt=""/></div>
<map name="curlapi_8c" id="curlapi_8c">
<area shape="rect" id="node2" href="curlapi_8h.html" title="curlapi.h" alt="" coords="66,80,138,107"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a98940a01c53d9fcfd108fe8e1c3069dd"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a98940a01c53d9fcfd108fe8e1c3069dd">soap_curl_init</a> (struct soap *soap, struct <a class="el" href="structsoap__curl__data.html">soap_curl_data</a> *data, CURL *curl)</td></tr>
<tr class="separator:a98940a01c53d9fcfd108fe8e1c3069dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f9a95d05b3954f1ab4866305667cd6e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a8f9a95d05b3954f1ab4866305667cd6e">soap_curl_delete</a> (struct soap *soap, struct soap_plugin *p)</td></tr>
<tr class="memdesc:a8f9a95d05b3954f1ab4866305667cd6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes plugin data.  <a href="#a8f9a95d05b3954f1ab4866305667cd6e">More...</a><br /></td></tr>
<tr class="separator:a8f9a95d05b3954f1ab4866305667cd6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6eb8832c9da09b72abd5a231cfe5dc8"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#ac6eb8832c9da09b72abd5a231cfe5dc8">soap_curl_connect_callback</a> (struct soap *soap, const char *endpoint, const char *host, int port)</td></tr>
<tr class="memdesc:ac6eb8832c9da09b72abd5a231cfe5dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The fconnect callback invokes this function to override connecting to an endpoint.  <a href="#ac6eb8832c9da09b72abd5a231cfe5dc8">More...</a><br /></td></tr>
<tr class="separator:ac6eb8832c9da09b72abd5a231cfe5dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a792bd6b08709a243b1a484bb76cddfb2"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a792bd6b08709a243b1a484bb76cddfb2">soap_curl_send_callback</a> (struct soap *soap, const char *buf, size_t len)</td></tr>
<tr class="memdesc:a792bd6b08709a243b1a484bb76cddfb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The fsend callback invokes this function to override sending data by saving in a blist.  <a href="#a792bd6b08709a243b1a484bb76cddfb2">More...</a><br /></td></tr>
<tr class="separator:a792bd6b08709a243b1a484bb76cddfb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63948ccaf9e61e3f0da87684a8ee819e"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a63948ccaf9e61e3f0da87684a8ee819e">soap_curl_prepare_init_recv_callback</a> (struct soap *soap)</td></tr>
<tr class="memdesc:a63948ccaf9e61e3f0da87684a8ee819e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The fprepareinitrecv callback invokes this function to override the start of receiving data and ending of sending.  <a href="#a63948ccaf9e61e3f0da87684a8ee819e">More...</a><br /></td></tr>
<tr class="separator:a63948ccaf9e61e3f0da87684a8ee819e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e1665881f2a4ebe5c61dbb323dcdded"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a9e1665881f2a4ebe5c61dbb323dcdded">soap_curl_prepare_final_recv_callback</a> (struct soap *soap)</td></tr>
<tr class="memdesc:a9e1665881f2a4ebe5c61dbb323dcdded"><td class="mdescLeft">&#160;</td><td class="mdescRight">The fpreparefinalrecv callback resets the recv callback.  <a href="#a9e1665881f2a4ebe5c61dbb323dcdded">More...</a><br /></td></tr>
<tr class="separator:a9e1665881f2a4ebe5c61dbb323dcdded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f71362f5e5d90ceeb64a72d76b63d90"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a3f71362f5e5d90ceeb64a72d76b63d90">soap_curl_recv_callback</a> (struct soap *soap, char *buf, size_t size)</td></tr>
<tr class="memdesc:a3f71362f5e5d90ceeb64a72d76b63d90"><td class="mdescLeft">&#160;</td><td class="mdescRight">The frecv callback invokes this function to override receiving data that is stored in a blist.  <a href="#a3f71362f5e5d90ceeb64a72d76b63d90">More...</a><br /></td></tr>
<tr class="separator:a3f71362f5e5d90ceeb64a72d76b63d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff4a4532fa5d9c1cb3f366ddc4316424"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#aff4a4532fa5d9c1cb3f366ddc4316424">soap_curl_read_callback</a> (void *buffer, size_t size, size_t nitems, void *ptr)</td></tr>
<tr class="memdesc:aff4a4532fa5d9c1cb3f366ddc4316424"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CURL read callback invokes this function to read data to send.  <a href="#aff4a4532fa5d9c1cb3f366ddc4316424">More...</a><br /></td></tr>
<tr class="separator:aff4a4532fa5d9c1cb3f366ddc4316424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d007f49ee926f73849d2ce22ba30f8"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a59d007f49ee926f73849d2ce22ba30f8">soap_curl_write_callback</a> (void *buffer, size_t size, size_t nitems, void *ptr)</td></tr>
<tr class="memdesc:a59d007f49ee926f73849d2ce22ba30f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CURL write callback invokes this function to write data that was received.  <a href="#a59d007f49ee926f73849d2ce22ba30f8">More...</a><br /></td></tr>
<tr class="separator:a59d007f49ee926f73849d2ce22ba30f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20fde8cbe7f12bfa7e67f426a3b371ac"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a20fde8cbe7f12bfa7e67f426a3b371ac">soap_curl</a> (struct soap *soap, struct soap_plugin *p, void *arg)</td></tr>
<tr class="memdesc:a20fde8cbe7f12bfa7e67f426a3b371ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Plugin registry function, used with soap_register_plugin and soap_register_plugin_arg.  <a href="#a20fde8cbe7f12bfa7e67f426a3b371ac">More...</a><br /></td></tr>
<tr class="separator:a20fde8cbe7f12bfa7e67f426a3b371ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1483609744a727d4e3e6676a40e044a6"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#a1483609744a727d4e3e6676a40e044a6">soap_curl_reset</a> (struct soap *soap)</td></tr>
<tr class="memdesc:a1483609744a727d4e3e6676a40e044a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the plugin so gSOAP IO behaves normally. This is an optional API call, not required except when serializing data after an error.  <a href="#a1483609744a727d4e3e6676a40e044a6">More...</a><br /></td></tr>
<tr class="separator:a1483609744a727d4e3e6676a40e044a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:af7ca66378554bf12c9941274639237c4"><td class="memItemLeft" align="right" valign="top">const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="curlapi_8c.html#af7ca66378554bf12c9941274639237c4">soap_curl_id</a> [] = <a class="el" href="curlapi_8h.html#ae4042eaa32cd2c83a83b6d3b4b4b8590">SOAP_CURL_ID</a></td></tr>
<tr class="separator:af7ca66378554bf12c9941274639237c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a20fde8cbe7f12bfa7e67f426a3b371ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_curl </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Plugin registry function, used with soap_register_plugin and soap_register_plugin_arg. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">soap</td><td>context </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">p</td><td>plugin created in registry </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>passed from soap_register_plugin_arg </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SOAP_OK </dd></dl>

</div>
</div>
<a class="anchor" id="ac6eb8832c9da09b72abd5a231cfe5dc8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int soap_curl_connect_callback </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>endpoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The fconnect callback invokes this function to override connecting to an endpoint. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>context </td></tr>
    <tr><td class="paramname">endpoint</td><td>URL to connect to, use "" if the CURL handle has a URL assigned with CURLOPT_URL </td></tr>
    <tr><td class="paramname">host</td><td>not used </td></tr>
    <tr><td class="paramname">port</td><td>not used </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SOAP_OK or error code </dd></dl>

</div>
</div>
<a class="anchor" id="a8f9a95d05b3954f1ab4866305667cd6e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void soap_curl_delete </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Deletes plugin data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">soap</td><td>context </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">p</td><td>plugin </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a98940a01c53d9fcfd108fe8e1c3069dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int soap_curl_init </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structsoap__curl__data.html">soap_curl_data</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CURL *&#160;</td>
          <td class="paramname"><em>curl</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9e1665881f2a4ebe5c61dbb323dcdded"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int soap_curl_prepare_final_recv_callback </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The fpreparefinalrecv callback resets the recv callback. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>context </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SOAP_OK or error code </dd></dl>

</div>
</div>
<a class="anchor" id="a63948ccaf9e61e3f0da87684a8ee819e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int soap_curl_prepare_init_recv_callback </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The fprepareinitrecv callback invokes this function to override the start of receiving data and ending of sending. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>context </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SOAP_OK or error code </dd></dl>

</div>
</div>
<a class="anchor" id="aff4a4532fa5d9c1cb3f366ddc4316424"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static size_t soap_curl_read_callback </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nitems</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The CURL read callback invokes this function to read data to send. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buffer</td><td>read data into this buffer, buffer is size*nitems large. </td></tr>
    <tr><td class="paramname">size</td><td></td></tr>
    <tr><td class="paramname">nitems</td><td></td></tr>
    <tr><td class="paramname">ptr</td><td>points to <a class="el" href="structsoap__curl__data.html" title="plugin data to store CURL handle and override callbacks ">soap_curl_data</a> plugin data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of bytes read, 0 for end or error </dd></dl>

</div>
</div>
<a class="anchor" id="a3f71362f5e5d90ceeb64a72d76b63d90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static size_t soap_curl_recv_callback </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The frecv callback invokes this function to override receiving data that is stored in a blist. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>context </td></tr>
    <tr><td class="paramname">buf</td><td>receive in this buffer </td></tr>
    <tr><td class="paramname">size</td><td>buffer size </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of bytes read, 0 for end or error </dd></dl>

</div>
</div>
<a class="anchor" id="a1483609744a727d4e3e6676a40e044a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_curl_reset </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reset the plugin so gSOAP IO behaves normally. This is an optional API call, not required except when serializing data after an error. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>context </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a792bd6b08709a243b1a484bb76cddfb2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int soap_curl_send_callback </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The fsend callback invokes this function to override sending data by saving in a blist. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">soap</td><td>context </td></tr>
    <tr><td class="paramname">buf</td><td>data to send </td></tr>
    <tr><td class="paramname">len</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SOAP_OK or error code </dd></dl>

</div>
</div>
<a class="anchor" id="a59d007f49ee926f73849d2ce22ba30f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static size_t soap_curl_write_callback </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nitems</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The CURL write callback invokes this function to write data that was received. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buffer</td><td>data to write of size*nitems bytes total. </td></tr>
    <tr><td class="paramname">size</td><td></td></tr>
    <tr><td class="paramname">nitems</td><td></td></tr>
    <tr><td class="paramname">ptr</td><td>points to <a class="el" href="structsoap__curl__data.html" title="plugin data to store CURL handle and override callbacks ">soap_curl_data</a> plugin data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of bytes written, 0 for error </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="af7ca66378554bf12c9941274639237c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char soap_curl_id[] = <a class="el" href="curlapi_8h.html#ae4042eaa32cd2c83a83b6d3b4b4b8590">SOAP_CURL_ID</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Plugin identification for plugin registry </p>

</div>
</div>
</div><!-- contents -->
<hr class="footer">
<address class="footer">
Copyright (C) 2019, Robert van Engelen, Genivia Inc., All Rights Reserved.
</address>
<address class="footer"><small>
Converted on Tue Jan 15 2019 08:38:05 by <a target="_blank" href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.11</small></address>
<br>
<div style="height: 246px; background: #DBDBDB;">
</body>
</html>
